package 算法练习;/**
 * @author： li
 * @date： 2022-01-09 14:56
 * @version 1.0
 */

import java.util.Scanner;

/**
 问题描述
 　　JiaoShou在爱琳大陆的旅行完毕，即将回家，为了纪念这次旅行，他决定带回一些礼物给好朋友。
 　　在走出了怪物森林以后，JiaoShou看到了排成一排的N个石子。
 　　这些石子很漂亮，JiaoShou决定以此为礼物。
 　　但是这N个石子被施加了一种特殊的魔法。
 　　如果要取走石子，必须按照以下的规则去取。
 　　每次必须取连续的2*K个石子，并且满足前K个石子的重量和小于等于S，后K个石子的重量和小于等于S。
 　　由于时间紧迫，Jiaoshou只能取一次。
 　　现在JiaoShou找到了聪明的你，问他最多可以带走多少个石子。
 输入格式
 　　第一行两个整数N、S。
 　　第二行N个整数，用空格隔开，表示每个石子的重量。
 输出格式
 　　第一行输出一个数表示JiaoShou最多能取走多少个石子。
 样列输入
 　　8 3
 　　1 1 1 1 1 1 1 1
 样列输出
 　　6
 样列解释
 　　任意选择连续的6个1即可。
 数据规模和约定
 　　对于20%的数据：N<=1000
 　　对于70%的数据：N<=100,000
 　　对于100%的数据：N<=1000,000，S<=10^12，每个石子的重量小于等于10^9，且非负
 */
public class 礼物 {
    public static void main(String[] args) {
        int n;
        long s;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        s = sc.nextLong();
        int k = (n+1) / 2;
        long[] w = new long[n];
        long[] sum = new long[2];
        for (int i = 0; i < n; i++) {
            w[i] = sc.nextInt();
        }
        int[] max = new int[n];
        for (int t = 1; t <=k; t++) {
            for (int i = k-t; i <=k-1; i++) {
                sum[0] = w[i] + sum[0];
            }
            //System.out.println("第"+t+"次，sum[0]="+sum[0]);

            for (int i =k+t-1;i>=k;i--) {
                sum[1] = w[i] + sum[1];
            }
            //System.out.println("第"+t+"次，sum[1]="+sum[1]);
            if (sum[0] <= s && sum[1] <= s) {
                max[t]=t;
                sum[0]=sum[1]=0;
            }
        }
        for(int i= n-1;i >= 0;i--){
            if(max[i] != 0){
                System.out.println(max[i]*2);
//                for(int j=0;j<=i;j++){
//                    System.out.print(max[j]+" ");
//                }
                break;
            }
        }
    }
}
